/**
 *
 */
package com.evil.DB_Utils;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Date;

/******************************************
 * 工程名：Download<br>
 * 包名：com.evil.DB_Utils<br>
 * 时间：2016年6月10日 上午10:46:47<br>
 * 作者：白雨濃 evil<br>
 * 邮箱：evilbai@foxmail.com<br>
 * 内容：查询返回接口<br>
 ******************************************/
public interface QueryCallBack
{
    /**
     * 回调
     */
    public abstract void onCallBack(Next next);

    /******************************************
     * 工程名：Download<br>
     * 包名：com.evil.DB_Utils<br>
     * 时间：2016年6月10日 下午12:02:27<br>
     * 作者：白雨濃 evil<br>
     * 邮箱：evilbai@foxmail.com<br>
     * 内容：封装ResultSet<br>
     ******************************************/
    public class Next
    {
        private ResultSet resultSet;

        public Next()
        {
        }

        public Next set(ResultSet resultSet)
        {
            this.resultSet = resultSet;
            return this;
        }

        public ResultSet getResultSet()
        {
            return resultSet;
        }

        /**
         * resultSet.next
         *
         * @return
         */
        public boolean next()
        {
            try
            {
                return resultSet.next();
            }
            catch (SQLException e)
            {
                //e.printStackTrace();
            }
            return false;
        }

        public void close()
        {
            try
            {
                if (resultSet != null)
                    resultSet.close();
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }

        public String getString(int index)
        {
            try
            {
                return resultSet.getString(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return null;
        }

        public int getInt(int index)
        {
            try
            {
                return resultSet.getInt(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return 0;
        }

        public double getDouble(int index)
        {
            try
            {
                return resultSet.getDouble(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return 0;
        }

        public Date getDate(int index)
        {
            try
            {
                return resultSet.getTimestamp(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return null;
        }

        public String getDateTime(int index)
        {
            try
            {
                SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat formatTime = new SimpleDateFormat("HH:mm:ss");

                return formatDate.format(resultSet.getDate(index)) + " "
                        + formatTime.format(resultSet.getTime(index));
            }
            catch (Exception e)
            {
                //e.printStackTrace();
                return null;
            }
        }

        public Time getTime(int index)
        {
            try
            {
                return resultSet.getTime(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return null;
        }

        public Object getObject(int index)
        {
            try
            {
                return resultSet.getObject(index);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return null;
        }
    }

}
